PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
Windows Server 2008 与普通 windows 版本最大的不同,在于其文件/目录控制权限更严。而 PostgreSQL 数据库也是一个按 “Unix/Linux 服务”程序设计的,也有自己的权限规则,因此,PostgreSQL 在 Windows Server 2008 上安装有些讲究。
Windows Server 2008 相对于普通的 Windows XP 来说,有些差别:对于普通用户,除了敏感的系统文件/目录是不可读写,其它目录,默认是只读、不能写。即使当前登录用户是管理员用户,很多时候写文件也会弹出一个对话框,确认你的管理员操作,减少病毒、木马程序乱改文件的可能。
PostgreSQL 数据库遵循“Unix/Linux 服务”程序运行的常用规则:用一个最小权限的用户账号,来运行系统服务。这样即使这个账号被破解,也不会带来多大风险。
闲话少说,直接来分析安装步骤。
第一,新建一个数据库的数据存放目录,比如 c:\db_data, 右键点击文件夹,选择“属性”、“安全”、“编辑”、“Users”,把“完全控制”一行的“允许”选中。确认保存。
这一步操作,是因为安装 PostgreSQL 数据库需要管理员权限,但是如果用安装过程中管理员创建的数据库数据目录,比如 c:\app\PostgreSQL\9.0\data, 则数据库运行时用户账号 postgres (最小权限的用户账号) 并不能往这个数据目录中写文件。安装过程最后的数据库初始化工作会失败,最后 PostgreSQL 数据库也无法启动。
事先创建一个普通用户(users) 可以完全控制的目录,可以避免以上问题。
第二,右键点击 PostgreSQL 数据库安装程序,选择“以管理员身份运行”。这一步很好理解,安装程序会创建 windows 服务,普通用户做不了这个。
第三,安装过程中,“Data Directory ”(数据存放目录) 选第一步创建的目录。
第四,安装过程中,Locale 选 “Chinese (Simplified), Singapore”。这一点很重要。如果是把PostgreSQL 安装在普通的 Windows XP 或者 Windows 7 上,使用默认的 “default” 就可以了。但是在 windows server 2008 上安装,必须选“Chinese (Simplified), Singapore”。不然,在 SQL 用 order by , 数据中的中文不能按拼音排序。
安装最后会有一个 cluster (集群) 初始化失败的警告,可以忽略。
第五,安装之后,创建新数据库,
字符排序要选chinese(simplified),Singapore.
字符分类要选chinese(simplified),Singapore.